﻿#region Using Directives

    using System;

    using Csla;

    using MarketPulse.BusinessLogic.Core;
    using MarketPulse.Reporting.Core.Criteria;

#endregion

namespace MarketPulse.Reporting.Core
{
    /// <summary>
    /// This class represents a read only instance of a reporting Visit within the system.
    /// </summary>
    [Serializable]
    public class McDonaldsCSOScoreSummaryReportInfo : MarketPulseReadOnlyBase<McDonaldsCSOScoreSummaryReportInfo>
    {

        #region Constructors

            /// <summary>
            /// Default constructor is private in order to (try to) enforce construction
            /// only via the static factory methods provided.
            /// </summary>
            protected McDonaldsCSOScoreSummaryReportInfo()
            {
            }

        #endregion

        #region Properties

            /// <summary>
            /// The YTDDineInScore property
            /// </summary>
            public static PropertyInfo<System.Int32?> YTDDineInScoreProperty = RegisterProperty<System.Int32?>(p => p.YTDDineInScore, string.Empty, (System.Int32?)null);
            public System.Int32? YTDDineInScore
            {
                get { return GetProperty(YTDDineInScoreProperty); }
            }

            /// <summary>
            /// The YTDDriveThruScore property
            /// </summary>
            public static PropertyInfo<System.Int32?> YTDDriveThruScoreProperty = RegisterProperty<System.Int32?>(p => p.YTDDriveThruScore, string.Empty, (System.Int32?)null);
            public System.Int32? YTDDriveThruScore
            {
                get { return GetProperty(YTDDriveThruScoreProperty); }
            }

            /// <summary>
            /// The YTDOverAllScore property
            /// </summary>
            public static PropertyInfo<System.Int32?> YTDOverAllScoreProperty = RegisterProperty<System.Int32?>(p => p.YTDOverAllScore, string.Empty, (System.Int32?)null);
            public System.Int32? YTDOverAllScore
            {
                get { return GetProperty(YTDOverAllScoreProperty); }
            }

            /// <summary>
            /// The DineInVisitsCompletedCurrentRound property
            /// </summary>
            public static PropertyInfo<System.Int32?> DineInVisitsCompletedCurrentRoundProperty = RegisterProperty<System.Int32?>(p => p.DineInVisitsCompletedCurrentRound, string.Empty, (System.Int32?)null);
            public System.Int32? DineInVisitsCompletedCurrentRound
            {
                get { return GetProperty(DineInVisitsCompletedCurrentRoundProperty); }
            }

            /// <summary>
            /// The DriveThruVisitsCompletedCurrentRound property
            /// </summary>
            public static PropertyInfo<System.Int32?> DriveThruVisitsCompletedCurrentRoundProperty = RegisterProperty<System.Int32?>(p => p.DriveThruVisitsCompletedCurrentRound, string.Empty, (System.Int32?)null);
            public System.Int32? DriveThruVisitsCompletedCurrentRound
            {
                get { return GetProperty(DriveThruVisitsCompletedCurrentRoundProperty); }
            }

            /// <summary>
            /// The OverAllVisitsCompletedCurrentRound property
            /// </summary>
            public static PropertyInfo<System.Int32?> OverAllVisitsCompletedCurrentRoundProperty = RegisterProperty<System.Int32?>(p => p.OverAllVisitsCompletedCurrentRound, string.Empty, (System.Int32?)null);
            public System.Int32? OverAllVisitsCompletedCurrentRound
            {
                get { return GetProperty(OverAllVisitsCompletedCurrentRoundProperty); }
            }

            /// <summary>
            /// The YTDCurrentPeriodRank property
            /// </summary>
            public static PropertyInfo<System.Int32?> YTDCurrentPeriodRankProperty = RegisterProperty<System.Int32?>(p => p.YTDCurrentPeriodRank, string.Empty, (System.Int32?)null);
            public System.Int32? YTDCurrentPeriodRank
            {
                get { return GetProperty(YTDCurrentPeriodRankProperty); }
            }

            /// <summary>
            /// The YTDPeriodRanksTotal property
            /// </summary>
            public static PropertyInfo<System.Int32?> YTDPeriodRanksTotalProperty = RegisterProperty<System.Int32?>(p => p.YTDPeriodRanksTotal, string.Empty, (System.Int32?)null);
            public System.Int32? YTDPeriodRanksTotal
            {
                get { return GetProperty(YTDPeriodRanksTotalProperty); }
            }

            /// <summary>
            /// The DineInVisitsRequiredCurrentRound property
            /// </summary>
            public static PropertyInfo<System.Int32?> DineInVisitsRequiredCurrentRoundProperty = RegisterProperty<System.Int32?>(p => p.DineInVisitsRequiredCurrentRound, string.Empty, (System.Int32?)null);
            public System.Int32? DineInVisitsRequiredCurrentRound
            {
                get { return GetProperty(DineInVisitsRequiredCurrentRoundProperty); }
            }

            /// <summary>
            /// The DriveThruVisitsRequiredCurrentRound property
            /// </summary>
            public static PropertyInfo<System.Int32?> DriveThruVisitsRequiredCurrentRoundProperty = RegisterProperty<System.Int32?>(p => p.DriveThruVisitsRequiredCurrentRound, string.Empty, (System.Int32?)null);
            public System.Int32? DriveThruVisitsRequiredCurrentRound
            {
                get { return GetProperty(DriveThruVisitsRequiredCurrentRoundProperty); }
            }

            /// <summary>
            /// The OverAllVisitsRequiredCurrentRound property
            /// </summary>
            public static PropertyInfo<System.Int32?> OverAllVisitsRequiredCurrentRoundProperty = RegisterProperty<System.Int32?>(p => p.OverAllVisitsRequiredCurrentRound, string.Empty, (System.Int32?)null);
            public System.Int32? OverAllVisitsRequiredCurrentRound
            {
                get { return GetProperty(OverAllVisitsRequiredCurrentRoundProperty); }
            }

        #endregion

    }
}
